package com.example.jobs.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.jobs.entity.TaskCronDO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface TaskCronMapper extends BaseMapper<TaskCronDO> {

    /**
     * 根据任务名称查询cron表达式
     * 执行完一次任务后会重新获取，从而实现无需重启服务即可修改任务执行周期
     *
     * @param taskName 任务名称，唯一
     * @return cron表达式
     */
    String getCronByTaskName(String taskName);

    /**
     * 根据任务名称查询分布式锁的锁定时间，如果不使用分布式锁则不需要
     *
     * @param taskName 任务名称，唯一
     * @return 分布式锁的锁定时间
     */
    Long getLockTimeByTaskName(String taskName);
}
